﻿//using System;
//using System.Collections.Generic;
//using System.Text;
//using ZhCun.Framework.DataAccess.DbHelper;
//using ZhCun.Framework.DataAccess.BuildSQLText;
//using System.Data.SqlClient;
//using System.Data.Common;
//using ZhCun.Framework.Common.Models.TableModel;
//using ZhCun.Framework.Common.Exceptions;

//namespace ZhCun.Framework.DataAccess.DAL
//{
//    public class DalBaseSQL<TModel> : DalBase<TModel> where TModel : ModelBase, new()
//    {
//        #region 构造函数

//        public DalBaseSQL()
//        { }
//        public DalBaseSQL(string connStr)
//        {
//            _ConnectString = connStr;
//        }

//        #endregion

//        #region 变量

//        IDbHelper _DBHelper;
//        BuildSQL _BuildSQLTextObj;
//        WhereParamBase _WhereParamHelper;
//        string _ConnectString;

//        #endregion

//        #region 父类重写

//        protected internal override DbHelper.IDbHelper DBHelper
//        {
//            get
//            {
//                if (_DBHelper == null)
//                {
//                    if (string.IsNullOrEmpty(_ConnectString))
//                    {
//                        ConfigFactory.GetMainConnStr();
//                    }
//                    if (string.IsNullOrEmpty(_ConnectString))
//                    {
//                        string errMsg = string.Format("在创建Dal对象时,未正确赋值连接字符串!");
//                        throw new FrameworkException(errMsg);
//                    }
//                    _DBHelper = new SQLHelper(_ConnectString);
//                }
//                return _DBHelper;
//            }
//        }

//        protected internal override BuildSQL BuildSQLTextObj
//        {
//            get
//            {
//                if (_BuildSQLTextObj == null)
//                {
//                    _BuildSQLTextObj = new BuildSQL_MSSQL();
//                }
//                return _BuildSQLTextObj;
//            }
//        }

//        protected internal override DbParameter GetDbParam(string paramName, object paramValue)
//        {
//            return new SqlParameter(paramName, paramValue);
//        }

//        protected internal override WhereParamBase WhereParamHelper
//        {
//            get
//            {
//                if (_WhereParamHelper == null)
//                {
//                    _WhereParamHelper = new WhereParamSQL();
//                }
//                return _WhereParamHelper;
//            }
//        }

//        #endregion
//    }
//}
